// 蜂窝蜜造平台生成代码，如手工更改，请添加到 .beeignore 忽略生成

package com.fowo.api.entity;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fowo.api.common.annotaion.*;
import com.fowo.api.common.mybatis.handlers.SysFileListTypeHandler;
import com.fowo.api.sys.entity.SysFile;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.List;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;

/**
 * WmsOrder
 */
@DS("ds24")
@Getter
@Setter
@TableName(value = "wms_order", autoResultMap = true)
@Schema(title = "销售出库单(wms)")
public class WmsOrder implements Serializable {

  /**
   * 编号
   */
  @TableField(value = "`id`")
  @TableId(type = IdType.ASSIGN_ID)
  @Schema(title = "编号")
  private Long id;

  /**
   * 所属订单管理
   */
  @TableField(value = "`parent_nav_sell_order`")
  @Schema(title = "所属订单管理")
  private Long parentNavSellOrder;

  /**
   * 销售出库单号
   */
  @TableField(value = "`wo_number`")
  @Schema(title = "销售出库单号")
  private String woNumber;

  /**
   * 系统单号
   */
  @TableField(value = "`order_number`")
  @Schema(title = "系统单号")
  private String orderNumber;

  /**
   * 波次号
   */
  @TableField(value = "`wave_order`")
  @Schema(title = "波次号")
  private String waveOrder;

  /**
   * 状态 (1 - 物流下单; 2 - 发货中; 3 - 已发货; 4 - 已删除; 5 - 已出库; )
   */
  @TableField(value = "`status`")
  @Schema(title = "状态")
  private String status;

  /**
   * 平台单号
   */
  @TableField(value = "`platform_order_no`")
  @Schema(title = "平台单号")
  private String platformOrderNo;

  /**
   * 物流服务商
   */
  @TableField(value = "`logistics_provider_id`")
  @Schema(title = "物流服务商")
  private String logisticsProviderId;

  /**
   * 物流方式
   */
  @TableField(value = "`logistics_type_id`")
  @Schema(title = "物流方式")
  private String logisticsTypeId;

  /**
   * 标签
   */
  @TableField(value = "`tag_names`")
  @Schema(title = "标签")
  private String tagNames;

  /**
   * 店铺
   */
  @TableField(value = "`sid`")
  @JoinField(ShopInfo.class)
  @Schema(title = "店铺")
  private Long sid;

  /**
   * 站点名称
   */
  @TableField(value = "`site_text`")
  @Schema(title = "站点名称")
  private String siteText;

  /**
   * 平台名称
   */
  @TableField(value = "`platform_name`")
  @Schema(title = "平台名称")
  private String platformName;

  /**
   * 出库时间
   */
  @TableField(value = "`delivered_at`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "出库时间")
  private java.util.Date deliveredAt;

  /**
   * 发货人
   */
  @TableField(value = "`deliverer`")
  @Schema(title = "发货人")
  private String deliverer;

  /**
   * 国家
   */
  @TableField(value = "`target_country`")
  @Schema(title = "国家")
  private String targetCountry;

  /**
   * 收件人税号
   */
  @TableField(value = "`recipient_tax_no`")
  @Schema(title = "收件人税号")
  private String recipientTaxNo;

  /**
   * 运单号
   */
  @TableField(value = "`waybill_no`")
  @Schema(title = "运单号")
  private String waybillNo;

  /**
   * 跟踪号
   */
  @TableField(value = "`tracking_no`")
  @Schema(title = "跟踪号")
  private String trackingNo;

  /**
   * 仓库
   */
  @TableField(value = "`wid`")
  @JoinField(Warehouse.class)
  @Schema(title = "仓库")
  private Long wid;

  /**
   * 预估运费
   */
  @TableField(value = "`logistics_estimated_freight`")
  @Schema(title = "预估运费")
  private java.math.BigDecimal logisticsEstimatedFreight;

  /**
   * 物流运费
   */
  @TableField(value = "`logistics_freight`")
  @Schema(title = "物流运费")
  private java.math.BigDecimal logisticsFreight;

  /**
   * 库存流水出库时间
   */
  @TableField(value = "`stock_delivered_at`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "库存流水出库时间")
  private java.util.Date stockDeliveredAt;

  /**
   * 是否验货
   */
  @TableField(value = "`is_check`")
  @Schema(title = "是否验货")
  private String isCheck;

  /**
   * 是否称重
   */
  @TableField(value = "`is_weigh`")
  @Schema(title = "是否称重")
  private String isWeigh;

  /**
   * 面单是否打印
   */
  @TableField(value = "`is_surface_print`")
  @Schema(title = "面单是否打印")
  private String isSurfacePrint;

  /**
   * 订单是否打印
   */
  @TableField(value = "`isorder_print`")
  @Schema(title = "订单是否打印")
  private String isorderPrint;

  /**
   * 包裹尺寸长
   */
  @TableField(value = "`pkg_length`")
  @Schema(title = "包裹尺寸长")
  private java.math.BigDecimal pkgLength;

  /**
   * 包裹尺寸高
   */
  @TableField(value = "`pkg_height`")
  @Schema(title = "包裹尺寸高")
  private java.math.BigDecimal pkgHeight;

  /**
   * 包裹实重
   */
  @TableField(value = "`pkg_real_weight`")
  @Schema(title = "包裹实重")
  private java.math.BigDecimal pkgRealWeight;

  /**
   * 估算重量
   */
  @TableField(value = "`pkg_weight`")
  @Schema(title = "估算重量")
  private java.math.BigDecimal pkgWeight;

  /**
   * 订单类型 (1 - 一单一件; 2 - 多品多件【原一单多件】; 3 - 单品多件; )
   */
  @TableField(value = "`order_type`")
  @Schema(title = "订单类型")
  private String orderType;

  /**
   * 收件人
   */
  @TableField(value = "`recipient`")
  @Schema(title = "收件人")
  private String recipient;

  /**
   * 电话
   */
  @TableField(value = "`phone`")
  @Schema(title = "电话")
  private String phone;

  /**
   * 邮编
   */
  @TableField(value = "`zip_code`")
  @Schema(title = "邮编")
  private String zipCode;

  /**
   * 收货地址
   */
  @TableField(value = "`address`")
  @Schema(title = "收货地址")
  private String address;

  /**
   * 订单金额
   */
  @TableField(value = "`order_origin_amount`")
  @Schema(title = "订单金额")
  private String orderOriginAmount;

  /**
   * 发货时限
   */
  @TableField(value = "`deliver_deadline`")
  @Schema(title = "发货时限")
  private String deliverDeadline;

  /**
   * 客服备注
   */
  @TableField(value = "`order_customer_service_notes`")
  @Schema(title = "客服备注")
  private String orderCustomerServiceNotes;

  /**
   * 买家留言
   */
  @TableField(value = "`order_buyer_notes`")
  @Schema(title = "买家留言")
  private String orderBuyerNotes;

  /**
   * 包裹体积
   */
  @TableField(value = "`pkg_volume`")
  @Schema(title = "包裹体积")
  private java.math.BigDecimal pkgVolume;

  /**
   * 加工单号
   */
  @TableField(value = "`process_sn`")
  @Schema(title = "加工单号")
  private String processSn;

  /**
   * 订单来源
   */
  @TableField(value = "`order_from`")
  @Schema(title = "订单来源")
  private String orderFrom;

  /**
   * 更新人
   */
  @TableField(value = "`last_update_user`")
  @Schema(title = "更新人")
  private Long lastUpdateUser;

  /**
   * 创建人
   */
  @TableField(value = "`create_user`")
  @Schema(title = "创建人")
  private Long createUser;

  /**
   * 更新时间
   */
  @TableField(value = "`last_update_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "更新时间")
  private java.util.Date lastUpdateTime;

  /**
   * 删除标记
   */
  @TableField(value = "`del_flag`")
  @TableLogic
  @Schema(title = "删除标记")
  private Boolean delFlag;

  /**
   * 创建时间
   */
  @TableField(value = "`create_time`")
  @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
  @Schema(title = "创建时间")
  private java.util.Date createTime;

  /**
   * 批次号
   */
  @TableField(value = "`batch_no`")
  @Schema(title = "批次号")
  private String batchNo;

  /**
   * 拣货人
   */
  @TableField(value = "`picker`")
  @Schema(title = "拣货人")
  private String picker;

  /**
   * 物流下单状态 (1 - 待导入; 2 - 物流待下单; 3 -  物流下单中; 4 - 下单异常; 5 -  下单完成; 6 - 待海外仓下单; 7 - 海外仓下单中; 11 - 待导入国内物流; 41 - 物流取消中; 42 - 物流取消异常; 43 - 物流取消完成; )
   */
  @TableField(value = "`logistics_status`")
  @Schema(title = "物流下单状态")
  private String logisticsStatus;

  /**
   * 物流下单消息
   */
  @TableField(value = "`logistics_message`")
  @Schema(title = "物流下单消息")
  private String logisticsMessage;

  /**
   * 订单币种
   */
  @TableField(value = "`order_currency_code`")
  @Schema(title = "订单币种")
  private String orderCurrencyCode;

  /**
   * 店铺名称
   */
  @TableField(value = "`seller_name`")
  @Schema(title = "店铺名称")
  private String sellerName;

  /**
   * 面单文件
   */
  @TableField(
    value = "`surface_file`",
    typeHandler = SysFileListTypeHandler.class
  )
  @Schema(title = "面单文件")
  private List<SysFile> surfaceFile;

  /**
   * 物流服务商名称
   */
  @TableField(value = "`logistics_provider_name`")
  @Schema(title = "物流服务商名称")
  private String logisticsProviderName;

  /**
   * 物流方式名称
   */
  @TableField(value = "`logistics_type_name`")
  @Schema(title = "物流方式名称")
  private String logisticsTypeName;

  /**
   * 包裹尺寸宽
   */
  @TableField(value = "`pkg_width`")
  @Schema(title = "包裹尺寸宽")
  private java.math.BigDecimal pkgWidth;

  /**
   * 包裹计费重
   */
  @TableField(value = "`pkg_fee_weight`")
  @Schema(title = "包裹计费重")
  private java.math.BigDecimal pkgFeeWeight;

  /**
   * 预估重量单位
   */
  @TableField(value = "`pkg_weight_unit`")
  @Schema(title = "预估重量单位")
  private String pkgWeightUnit;

  /**
   * 包裹实重单位
   */
  @TableField(value = "`pkg_real_weight_unit`")
  @Schema(title = "包裹实重单位")
  private String pkgRealWeightUnit;

  /**
   * 包裹计费重单位
   */
  @TableField(value = "`pkg_fee_weight_unit`")
  @Schema(title = "包裹计费重单位")
  private String pkgFeeWeightUnit;

  /**
   * 包裹尺寸单位
   */
  @TableField(value = "`pkg_size_unit`")
  @Schema(title = "包裹尺寸单位")
  private String pkgSizeUnit;

  /**
   * 预估运费币种
   */
  @TableField(value = "`logistics_estimated_freight_currency_code`")
  @Schema(title = "预估运费币种")
  private String logisticsEstimatedFreightCurrencyCode;

  /**
   * 物流运费币种
   */
  @TableField(value = "`logistics_freight_currency_code`")
  @Schema(title = "物流运费币种")
  private String logisticsFreightCurrencyCode;

  /**
   * 发件人税号
   */
  @TableField(value = "`sender_tax_no`")
  @Schema(title = "发件人税号")
  private String senderTaxNo;

  /**
   * 城市
   */
  @TableField(value = "`city`")
  @Schema(title = "城市")
  private String city;

  /**
   * 省/州
   */
  @TableField(value = "`province_state`")
  @Schema(title = "省/州")
  private String provinceState;

  /**
   * 区/县
   */
  @TableField(value = "`district_county`")
  @Schema(title = "区/县")
  private String districtCounty;

  /**
   * 门牌号
   */
  @TableField(value = "`house_number`")
  @Schema(title = "门牌号")
  private String houseNumber;

  /**
   * 是否操作库存 (1 - 已操作; 0 - 未操作; )
   */
  @TableField(value = "`is_operation`")
  @Schema(title = "是否操作库存")
  private String isOperation;

  /**
   * 仓库名称
   */
  @TableField(value = "`w_name`")
  @Schema(title = "仓库名称")
  private String wName;

  /**
   * 领星销售出库单ID
   */
  @TableField(value = "`wo_id`")
  @Schema(title = "领星销售出库单ID")
  private Integer woId;

  /**
   * 卖家邮箱
   */
  @TableField(value = "`buyer_email`")
  @Schema(title = "卖家邮箱")
  private String buyerEmail;
}
